実験7: DALL-E3への指示をJSONで行うと、精度は上がるのか?
背景
UdemyでDALL-E3講座を作成しており、上級テクニックのところで、より安定させるテクニックを解説することになった。 その内容を思考する過程で、以下の記事を読んだ
このように、ChatGPTにJSON構造で指示することには確かな価値がある。(主に画像以外での通常タスク)
疑問
DALL-E3では、JSON形式でアウトプットさせると精度が上がるのか? 軽率にJSON構造にする工程を採用してしまうと、JSONに慣れていない人からすると、拒否反応が出てしまう。
慎重に判断する必要がある
実験
こちらの元画像をGPT-4Vに読み込ませ、JSONに抽出してもらった。
https://scrapbox.io/files/656551457fdca2001c5649d6.png
以下のJSONを使用した。
https://scrapbox.io/files/6565501903151b001be6e48f.png
GPT-4Vを通して、画像を読み取らせ、このJSONを埋めてもらう。
得られたJSONはこちら
https://scrapbox.io/files/6565507bfa42dc001b169dbd.png
残念ながら、画像で最重要項目の詳細説明が、300word -> 100word程度になってしまった。
これをDALL-E3に打ち込むと、こういう結果だった。
https://scrapbox.io/files/656555d1826604001ca1b7b9.png
画像のスタイルが大人っぽく、精度はそこまで高くない。
出力にもだいぶ揺らぎがある
画像の詳細説明の文字数が少ないため、きちんと文脈を伝えられなかった可能性がある。
JSONには通常コメントを書き込めないため、以下のようにdescriptionを追加して実験を行った。
しかし同様の結果だった。
https://scrapbox.io/files/6565523c59a1d3001c763b29.png
結果
https://scrapbox.io/files/656551062e0f61001c1797c0.png
これも、画像の詳細説明のvalueは、100wordくらいになってしまった。
DALL-E3の結果はこちら。
https://scrapbox.io/files/656554c7287f0a001b717727.png
似てない。
しかし、出力結果の揺らぎは少ない。
かなり詳細説明が長い(下画像赤かっこ)のプロンプトが得られた。
https://scrapbox.io/files/6565530ceaf6b7001c9f406a.png
https://scrapbox.io/files/656554e7b5b9ae001c3b903d.png
似ている。揺らぎも少ない。
結論
JSONを無理に使わなくて良い。
Markdownで十分というか、そちらの方が精度が高い。
ネストになりにくいデータ構造をしている。(オブジェクト、サブオブジェクトのような構造になりにくい)
そのため、Markdownで十分だし、何文字以上にしてなどの希望も、こちらの方が柔軟に伝えられる。
yamlや、jsoncにしたらコメントも書き込めるため、結果は異なるかもしれない。